package pruebas.testArmas;

import org.junit.*;
import static org.junit.Assert.*;
import static modelo.SetUps.DANIO_LASER;
import static modelo.SetUps.ALCANCE_LASER;
import modelo.armas.Balas;
import modelo.armas.BandoEnemigo;
import modelo.armas.Laser;
import modelo.util.Vector;

public class TestLaser {

	private Vector p1 = new Vector (0,0);
	private Vector p2 = new Vector (1,0);
	private Laser laser;
	
	@Before
	public void setUp() throws Exception {
		laser = new Laser (new BandoEnemigo());//laser enemigo
	}

	@Test
	public void testCarga (){
		//la carga del Laser no debe agotarse.
		for (int i = 0; i < 30; i++){
			laser.disparar(p1,p2);
			assertTrue ("la carga del laser no deberia agotarse",
					laser.puedeSeguirDisparando()); 
		}
	}
	
	@Test
	public void testAsignacionDePosicion(){
		Balas unaBala = laser.disparar(p1,p2);
		assertEquals("el arma no crea la bala en la posicion correcta",
				p1, unaBala.getPosicion());
	}
	
	@Test
	public void testValoresDeBala(){
		Balas unaBala = laser.disparar(p1,p2);
		assertEquals ("danio no se ha inicializado correctamente",
				DANIO_LASER, unaBala.getDanio());
		assertEquals ("alcance no se ha inicializado correctamente",
				ALCANCE_LASER, unaBala.getAlcance());
	}
}
